# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.


# The configuration file needs to define the sources, 
# the channels and the sinks.
# Sources, channels and sinks are defined per agent, 
# in this case called 'agent'

agent.sources = logfile
agent.channels = memoryChannel
agent.sinks = logSink

# For each one of the sources, the type is defined
agent.sources.logfile.type = TAILDIR
agent.sources.logfile.channels = memoryChannel
agent.sources.logfile.positionFile = /var/log/flume/{{item.logfile}}_position.json
agent.sources.logfile.filegroups = admin magic passport
agent.sources.logfile.filegroups.admin = /var/log/nginx/admin_{{item.logfile}}.log
agent.sources.logfile.filegroups.magic = /var/log/nginx/magic_{{item.logfile}}.log
agent.sources.logfile.filegroups.passport = /var/log/nginx/user_{{item.logfile}}.log

agent.sources.logfile.headers.nginx.headerKey1 = admin
agent.sources.logfile.headers.magic.headerKey1 = magic
agent.sources.logfile.headers.passport.headerKey1 = passport
agent.sources.logfile.fileHeader = true

# The channel can be defined as follows.

# Each sink's type must be defined
agent.sinks.logSink.channel = memoryChannel
agent.sinks.logSink.type = org.apache.flume.sink.kafka.KafkaSink
agent.sinks.logSink.kafka.topic ={{ item.topic }}
agent.sinks.logSink.kafka.bootstrap.servers = {{ kafka_broker }}
agent.sinks.logSink.kafka.flumeBatchSize=1
agent.sinks.logSink.kafka.producer.acks=1
agent.sinks.logSink.kafka.producer.linger.ms=1
agent.sinks.logSink.kafka.producer.compression.type=snappy

# Each channel's type is defined.
agent.channels.memoryChannel.type = memory

# Other config values specific to each type of channel(sink or source)
# can be defined as well
# In this case, it specifies the capacity of the memory channel
agent.channels.memoryChannel.capacity = 1000
